const db = require("../db");

const bcryptjs = require('bcryptjs');

// 获取用户信息处理函数
exports.info = (req, res) => {
    const selSql = 'select id,username,nickname,email,user_pic from users where id = ?'; // 定义SQL查询语句
    db.query(selSql, req.user.id, (err, data) => { // 执行SQL语句
        if (err) return res.cs(err); // 若语句错误,返回错误信息
        if (data.length === 0) return res.cs('获取信息失败'); // 若没有查到,返回错误信息
        // 获取数据成功,响应数据
        res.send({
            status: 0,
            message: '获取信息成功',
            data:data[0]
        });
    })
};
// 更新用户信息处理函数
exports.update = (req, res) => {
    const info = req.body;
    const upSQL = 'update users set ? where id = ?'; // 定义SQL语句
    db.query(upSQL, [info, info.id], (err, data) => { // 执行
        if (err) return res.cs(err);
        if (data.affectedRows !== 1) return res.cs('修改信息失败');
        res.cs('修改成功', 0);
    })
};
// 更新用户密码处理函数 
exports.uppwd = (req, res) => {
    const selSql = 'select * from users where id = ?'; // 定义查询SQL语句
    db.query(selSql, req.user.id, (err, data) => { // 执行查询语句
        if (err) return res.cs(err);
        if (data.length === 0) return res.cs('不存在该用户');
        const flag = bcryptjs.compareSync(req.body.oldPwd, data[0].password); // 输入的原密码对比数据库里的密码,是否一致
        if (!flag) res.cs('原密码错误'); // 若不一致,返回提示信息
        req.body.newPwd = bcryptjs.hashSync(req.body.newPwd, 10); // 将更新的密码加密
        const upSQL = 'update users set password = ? where id = ?';
        db.query(upSQL, [req.body.newPwd, req.user.id], (err, data) => {
            if (err) return res.cs(err);
            if (data.affectedRows !== 1) return res.cs('修改密码失败');
            res.cs('更新密码成功', 0);
        })
    })
};
// 更新用户头像处理函数
exports.upavatar = (req, res) => {
    const upSql = 'update users set user_pic = ? where id = ?';
    db.query(upSql, [req.body.avatar, req.user.id], (err, data) => {
        if (err) return res.cs(err);
            if (data.affectedRows !== 1) return res.cs('修改密码失败');
            res.cs('更新头像成功', 0); 
    })
}